Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

306
Views
Analizar csv usando el nodo "csv-parser" JS

Estoy usando la biblioteca 'csv-parser'. Usando el método a continuación, puedo obtener los datos almacenados en la matriz de cumpleaños que se muestra en la consola:

 const birthdays = []; fs.createReadStream('./data/groupes.csv') .pipe(csv({})) .on('data', (data) => birthdays.push(data)) .on('end', () => { console.log(birthdays) });

pero cuando inicio sesión fuera de .on('end') como se muestra a continuación, la consola muestra la matriz de cumpleaños como vacía:

 const birthdays = []; fs.createReadStream('./data/groupes.csv') .pipe(csv({})) .on('data', (data) => birthdays.push(data)) .on('end', () => { }); console.log(birthdays)

¿Porqué es eso? y como puedo solucionarlo? Gracias por adelantado.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

¿Porqué es eso?

Es porque createReadStream funciona de forma asíncrona y cuando console.log(birthdays); afuera, la ejecución del código lee el registro antes de que createReadStream haya terminado de procesarse

¿Cómo puedo resolverlo?

Hiciste bien en ponerlo dentro de .on("end")

 const birthdays = []; fs.createReadStream('./data/groupes.csv') .pipe(csv({})) .on('data', (data) => birthdays.push(data)) .on('end', () => { console.log(birthdays); // further processing with birthdays });
about 4 years ago · Juan Pablo Isaza Report

0

¿Podrías hacer algo como esto?

 const csv = require("csv-parser"); const fs = require("fs"); const path = require("path"); const { promisify } = require("util"); const readFile = promisify(fs.readFile); const birthdays = []; const filePath = path.join(__dirname, "data", "groupes.csv"); readFile(filePath, "utf8").then((data) => { csv(data, { separator: ",", }) .on("data", (row) => { birthdays.push(row); }) .on("end", () => { console.log(birthdays); }); });
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!